﻿#include "WRWorkObject.h"
#include "WRWorkObjectType.h"
#include "WRWorkObjectUuids.h"

//获取工作对象类型。
WRType* WRTypes::workObject(void)
{
    static WRType* type = WRType::enroll(WRWorkObjectType, 0);
    return type;
}

//查询指定标识的工作处理者。
WRWorkDealer* WRWorkObject::queryWorkDealer(const QUuid&)
{
    return 0;
}
//查询指定标识的任务处理者。
WRTaskDealer* WRWorkObject::queryTaskDealer(const QUuid&)
{
    return 0;
}
//查询指定标识的数据源接口。
WRDataSource* WRWorkObject::queryDataSource(const QUuid&)
{
    return 0;
}
//查询指定标识的事件源接口。
WREventSource* WRWorkObject::queryEventSource(const QUuid&)
{
    return 0;
}
//查询指示标识的状态源接口。
WRStateSource* WRWorkObject::queryStateSource(const QUuid&)
{
    return 0;
}

//初始化工作对象。
WRWorkObject::WRWorkObject(const WRWorkInformation& info, WRWorkObject* parent)
    : WRWorkEntity(info), m_parent(parent), m_daemon(parent->daemon()), m_session(parent->session())
{
    //NOTHING
}
//初始化工作对象。
WRWorkObject::WRWorkObject(const WRWorkInformation& info, WRWorkDaemon* daemon)
    : WRWorkEntity(info), m_parent(nullptr), m_daemon(daemon), m_session(nullptr)
{
    //NOTHING
}
//初始化工作对象。
WRWorkObject::WRWorkObject(const WRWorkInformation& info, WRWorkSession* session)
    : WRWorkEntity(info), m_parent(nullptr), m_daemon(session->daemon()), m_session(session)
{
    //NOTHING
}

//清理当前对象所占用的相关资源。
WRWorkObject::~WRWorkObject()
{
    //add code here
}

//当加载后执行相应的初始工作。
void WRWorkObject::onInit(void)
{
    for(WRu i = 0, l = m_children.count(); i < l; ++i)
    {
        m_children[i]->onInit();
    }
}
//当删除前执行相应的清理工作。
void WRWorkObject::onFree(void)
{
    for(WRu i = 0, l = m_children.count(); i < l; ++i)
    {
        m_children[i]->onFree();
    }
}
